//package cn.zhys513;
//
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.util.HashMap;
//
//import javax.imageio.ImageIO;
//
//import org.apache.log4j.Logger;
//import org.opencv.core.Mat;
//import org.opencv.imgcodecs.Imgcodecs;
//
//import cn.zhys513.utils.ImageConver;
//import cn.zhys513.utils.ImageFilters;
//import cn.zhys513.utils.RotateImage;
//
//public class ImageExtension {
//
//	public static Logger log = Logger.getLogger(ImageExtension.class);
//	
//	private String srcFilePath;
//	private String fileName;
//	private String suffix;
//	private String dscFilePath;
//	private File fileSrc;
//	
//	public ImageExtension() {
//		
//	}
//	
//	public ImageExtension(String srcFilePath) {
//		init(srcFilePath);
//	}
//	 
//	
//	public void init(String srcFilePath) {
//		this.srcFilePath = srcFilePath;
//		fileSrc = new File(srcFilePath);
//		fileName = fileSrc.getName();
//		suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
//		dscFilePath = fileSrc.getParent();
//		fileName = fileName.replaceAll("." + suffix, "");
//	}
//	
//	public void changer() throws Exception {
//		ImageFilters imageFilters = new ImageFilters();
//		Mat src = Imgcodecs.imread(srcFilePath);
//		if (src.empty())
//			return;
//		log.info("开始处理..." + srcFilePath);
//		Mat mirror = imageFilters.mirror(src);
//		bufferedImageWrite(mirror,"mirror");
//
//		Mat blur = imageFilters.blur(src);
//		bufferedImageWrite(blur,"blur");
//		
//		Mat gray = imageFilters.gray(src);
//		bufferedImageWrite(gray,"gray"); 
//		
//		Mat sharpen = imageFilters.sharpen(src);
//		bufferedImageWrite(sharpen,"sharpen"); 
//
//		Mat darkness = imageFilters.darkness(src);
//		bufferedImageWrite(darkness,"darkness");
//
//		Mat brightness = imageFilters.brightness(src);
//		bufferedImageWrite(brightness,"brightness");  
//
//		Mat erode = imageFilters.erode(src);
//		bufferedImageWrite(erode,"erode");  
//
//		Mat dilate = imageFilters.dilate(src);
//		bufferedImageWrite(dilate,"dilate");  
//
//		Mat medianBlur = imageFilters.medianBlur(src,7);
//		bufferedImageWrite(medianBlur,"medianBlur"); 
//		
//		BufferedImage bufferedImage = ImageIO.read(fileSrc);
//
//		BufferedImage rotate1 = RotateImage.Rotate(bufferedImage, 1);
//		ImageIO.write(rotate1, suffix, new File(getFilePath("rotate1")));
//		
//		BufferedImage rotate3 = RotateImage.Rotate(bufferedImage, 3);
//		ImageIO.write(rotate3, suffix, new File(getFilePath("rotate3")));
//		
//		BufferedImage rotate5 = RotateImage.Rotate(bufferedImage, 5);
//		ImageIO.write(rotate5, suffix, new File(getFilePath("rotate5")));
//
//		BufferedImage rotate_1 = RotateImage.Rotate(bufferedImage, 359);
//		ImageIO.write(rotate_1, suffix, new File(getFilePath("rotate_1")));
//		
//		BufferedImage rotate_3 = RotateImage.Rotate(bufferedImage, 357);
//		ImageIO.write(rotate_3, suffix, new File(getFilePath("rotate_3")));
//		
//		BufferedImage rotate_5 = RotateImage.Rotate(bufferedImage, 355);
//		ImageIO.write(rotate_5, suffix, new File(getFilePath("rotate_5"))); 
//	}
//	
//	private String getFilePath(String extension) {
//		String  returnPath = dscFilePath + "\\" + fileName + "_" + extension + "." + suffix;
//		return returnPath;
//	}
//	
//	private void bufferedImageWrite(Mat mat,String extension) throws Exception {
////		Imgcodecs.imwrite(getFilePath(extension), mat); 
//		BufferedImage b_medianBlur = ImageConver.conver2Image(mat);
//		ImageIO.write(b_medianBlur, suffix, new File(getFilePath(extension)));
//	}
//	
//	/**
//	 * 获取文件后缀
//	 * @param file
//	 * @return
//	 */
//	public static String getSuffix(File file) {
//		String fileName = file.getName();
//		String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
//		return suffix;
//	}
//	
//	/**
//	 * 根据后缀判断是否为图片
//	 * @param file
//	 * @return
//	 */
//	public static boolean isImg(File file) {
//		String suffix = getSuffix(file);
//		HashMap<String, String> suffixs = new HashMap<String, String>();
//		suffixs.put("JPG", "JPG");
//		suffixs.put("PNG", "PNG");
//		suffixs.put("BMP", "BMP");
//		suffixs.put("JPEG", "JPEG");
//		if (null == suffix || "".equals(suffix) || null == suffixs.get(suffix.toUpperCase())) {
//			return false;
//		} else
//			return true;
//	}
//}
